package com.ldp.designpatterns.study.iterator.collection;

import com.ldp.designpatterns.study.iterator.iterator.ConcreteIteratorD;
import com.ldp.designpatterns.study.iterator.iterator.IteratorD;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName ConcreteCollection TODO:  第4步：具体的集合类实现可迭代的集合接口
 * @Description TODO:迭代器模式 迭代器模式提供了一种统一的方法来遍历不同类型的集合
 * @Author lindipei
 * @Date 2023/10/18 10:59
 */
public class ConcreteCollection <T> implements IterableCollection<T>{
    private List<T> items = new ArrayList<>();

    public void addItem(T item) {
        items.add(item);
    }


    @Override
    public IteratorD<T> createIterator() {
        return new ConcreteIteratorD<T>(items);
    }
}
